//
//  KSImageUtil.h
//  test
//
//  Created by Mac on 2018/12/29.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN


/**
 批量压缩图片回调

 @param imgs 压缩后图片的集合
 */
typedef void(^CompressImageComplete)(NSArray<NSData*>* imgs);

@interface KSImageUtil : NSObject


/**
 修正图片方向,解决旋转90°的问题

 @param src 原图
 @return 修正后的图片
 */
UIImage* ks_imageDirection(UIImage* src);


/**
 压缩图片质量,压缩有误差,并且有一定限制。比较耗时

 @param src 原图
 @param byte 压缩后的大小，byte
 @return 压缩后的图片流
 */
NSData* ks_imageCompressQuality(UIImage* src, NSUInteger byte);


/**
 压缩尺寸。比较耗时

 @param src 原图
 @param byte 压缩后的大小，byte
 @return 压缩后的图片
 */
NSData* ks_imageCompressSize(UIImage* src ,NSUInteger byte);


/**
 异步批量压缩图片质量
 
 @param srcs 图片集合
 @param byte 限制大小
 @param complete 成功回调
 */
void ks_imageAsynCompressQuality(NSArray<UIImage*>* srcs,
                                 NSUInteger byte,
                                 CompressImageComplete complete);

/**
 异步批量压缩图片尺寸
 
 @param srcs 图片集合
 @param byte 限制大小
 @param complete 成功回调,非主线程
 */
void ks_imageAsynCompressSize(NSArray<UIImage*>* srcs,
                              NSUInteger byte,
                              CompressImageComplete complete);


/**
 建议使用此方法,异步批量压缩图片质量和尺寸
 
 @param srcs 图片集合
 @param byte 限制大小单位byte
 @param complete 成功回调,非主线程
 */
void ks_imageAsynCompress(NSArray<UIImage*>* srcs,
                          NSUInteger byte,
                          CompressImageComplete complete);


/**
 修改图片大小

 @param src 原图
 @param size size
 @return 修改后的图片
 */
UIImage* ks_imageResize(UIImage* src, CGSize size);

@end

NS_ASSUME_NONNULL_END
